博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php采集远程文章简单类
阅读量:6509 次
发布时间:2019-06-24

本文共 3084 字,大约阅读时间需要 10 分钟。

db = $db; } function geturlfile($url) { $url = trim($url); $content = ''; if (extension_loaded('curl')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $content = curl_exec($ch); curl_close($ch); } else { $content = file_get_contents($url); } return trim($content); } function get_all_url($code) { preg_match_all('/
"\\' ]+)["|\\']?\\s*[^>]*>([^>]+)<\\/a>/is', $code, $arr); return array('name' => $arr[2], 'url' => $arr[1]); } function get_sub_content($str, $start, $end) { $start = trim($start); $end = trim($end); if ($start == '' || $end == '') { return $str; } $str = explode($start, $str); $str = explode($end, $str[1]); return $str[0]; } function vd($var) { echo "
\\r\\n"; echo "
\\r\\n";        var_dump($var);        echo "\\r\\n
\\r\\n"; echo "
"; }}?>
geturlfile($url);//定义采集列表区间$start = '
';$end = '
';//获取区间内的文章URL和TITLE$code = $gather->get_sub_content($html, $start, $end);$newsAry = $gather->get_all_url($code);//打印出结果//$gather->vd($newsAry);$tarGetUrl = $newsAry['url'][0];//获取目标网址HTML$html = $gather->geturlfile($tarGetUrl);//定义采集列表区间$start = '
';$end = '
';//获取区间内的文章URL和TITLE$code = $gather->get_sub_content($html, $start, $end);$killHtml = '';$killHtml2 = 'netease';$code = str_replace($killHtml, "", $code);$code = str_replace($killHtml2, "", $code);$gather->vd($code);?>//该片段来自于http://outofmemory.cn

 

 

php 文章采集正则代码

//采集html function getwebcontent($url){ $ch = curl_init(); $timeout = 10; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); $contents = trim(curl_exec($ch)); curl_close($ch); return $contents; } //获得标题和url $string = getwebcontent('http://www.***.com/learn/zhunbeihuaiyun/jijibeiyun/2'); //正则匹配
  • 获取标题和地址 preg_match_all ("/
  • (.*)<\/a>/",$string, $out, PREG_SET_ORDER);foreach($out as $key => $value){ $article['title'][] = $out[$key][2]; $article['link'][] = "http://www.***.com/learn/article/".$out[$key][1]; } //根据url获取文章内容 foreach($article['link'] as $key=>$value){ $content_html = getwebcontent($article['link'][$key]); preg_match("/
    [\s|\S]*?<\/div>/",$content_html,$matches); $article[content][$key] = $matches[0]; } //不转码还真不能保存成文件 foreach($article[title] as $key=>$value){ $article[title][$key] = iconv('utf-8', 'gbk', $value);//转码 } //存入文件 $num = count($article['title']); for($i=0; $i<$num; $i++){ file_put_contents("{
    $article[title][$i]}.txt", $article['content'][$i]); } ?>
  •  

    如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
    你可能感兴趣的文章
    Flume 读取实时更新的日志文件
    查看>>
    HDU 2049
    查看>>
    《Spring1之第十次站立会议》
    查看>>
    Unity Shader 噪声消融特效 - 剑灵死亡特效
    查看>>
    Eclipse 自动生成 Ant的Build.xml 配置文件
    查看>>
    添加一条信息到列表,如果重复就替换,
    查看>>
    C#基础第五天
    查看>>
    python 小数相加报错 invalid literal for int() with base 10
    查看>>
    【ubuntu】linux链接库
    查看>>
    uva 12325 枚举暴力 b
    查看>>
    多线程问题(JVM重排序)
    查看>>
    LeetCode 459 Repeated Substring Pattern
    查看>>
    POJ 3268 Silver Cow Party
    查看>>
    EMLS项目推进思考
    查看>>
    Eclipse快捷键 10个最有用的快捷键
    查看>>
    2018-2019-1 20165302 实验五 通讯协议设计
    查看>>
    Golang 知识点总结
    查看>>
    JAVA 8 特性
    查看>>
    算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
    查看>>
    WebService之Axis2快速入门(7): Spring与axis整合发布为WebServic
    查看>>